package com.rfouchet.movie.allocineapi;

public class AllocineRequest {

	/**
	 * chaîne à chercher
	 */
	private String query;

	/**
	 * schéma XML à utiliser en fonction des partenaires
	 */
	private TypePartner partner = TypePartner.UN;

	/**
	 * renvoie le résultat au format JSON si json=1
	 */
	private boolean json = false;

	/**
	 * nombre de résultats à renvoyer
	 */
	private Integer count;

	/**
	 * degré d'informations renvoyées
	 */
	private TypeProfile profile;

	/**
	 * numéro de la page de résultats à afficher
	 */
	private Integer page;

	public String getQuery() {
		return query;
	}

	public void setQuery(String query) {
		this.query = query;
	}

	public TypePartner getPartner() {
		return partner;
	}

	public void setPartner(TypePartner partner) {
		this.partner = partner;
	}

	public boolean isJson() {
		return json;
	}

	public void setJson(boolean json) {
		this.json = json;
	}

	public Integer getCount() {
		return count;
	}

	public void setCount(Integer count) {
		this.count = count;
	}

	public TypeProfile getProfile() {
		return profile;
	}

	public void setProfile(TypeProfile profile) {
		this.profile = profile;
	}

	public Integer getPage() {
		return page;
	}

	public void setPage(Integer page) {
		this.page = page;
	}

	public AllocineRequest(String pQuery) {
		this.query = pQuery;
	}

	public String format() {
		StringBuilder stb = new StringBuilder();
		stb.append(AllocineParser.URL_SEARCH);
		stb.append("?q=");
		stb.append(this.getQuery());
		if (partner != null) {
			stb.append("&partner=");
			stb.append(partner.getPartner());
		}
		if (json)
		{
			stb.append("&json=1");
		}
		if (count != null)
		{
			stb.append("&count=");
			stb.append(count.intValue());
		}
		if (profile != null)
		{
			stb.append("&profile=");
			stb.append(profile.getProfile());
		}
		if (page != null)
		{
			stb.append("&page=");
			stb.append(page.intValue());
		}
		return stb.toString();
	}
}
